/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package presenter;

import boundary.ListarDirRegionalView;
import collection.CollectionDirRegional;
import entity.DirRegional;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import javax.swing.plaf.basic.BasicSliderUI.ActionScroller;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author jakson
 */
public class ListarDirRegionalPresenter {

    private ListarDirRegionalView view;
    private collection.CollectionDirRegional regional;
    private ArrayList<DirRegional> list = new ArrayList<DirRegional>();
    private int WIDTH;

    public ListarDirRegionalPresenter() {
        regional = new CollectionDirRegional();
        list = regional.getRegional();
        view = new ListarDirRegionalView(null, true);
        
        view.getBtnEditar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                editar();
            }
        });
        view.getBtnFechar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                fechar();
            }
        });

        view.getBtnExcluir().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                excluir();
            }
        });

        view.getBtnNovo().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                novo();
            }
        });

        carregaTabela(list);
        view.setLocationRelativeTo(view);
        view.setVisible(true);
    }

    private void editar() {


        if (view.getTabelaDirRegional().getSelectedRow() < 0) {
            JOptionPane.showMessageDialog(null, "selecione uma linha para editar", "ERRo", WIDTH);
        } else {

            regional.editar(view.getTabelaDirRegional().getValueAt(view.getTabelaDirRegional().getSelectedRow(), 0).toString());

        }
    }

    private void fechar() {
        view.dispose();
    }

    private void excluir() {

        collection.CollectionDirRegional regional = new CollectionDirRegional();
        if (view.getTabelaDirRegional().getSelectedRow() < 0) {
            JOptionPane.showMessageDialog(null, "selecione uma linha para excluir", "ERRO", WIDTH);
        } else {
            if (JOptionPane.showConfirmDialog(null, "Tem certeza que realmente deseja excluir a Agência", "Sistema Bancário", 0, 3) == 0) {
                regional.excluirDirRegional(view.getTabelaDirRegional().getValueAt(view.getTabelaDirRegional().getSelectedRow(), 0).toString());
                view.revalidate();

            }
        }
    }

    private void novo() {
        new AddDirRegionalPresenter("", null);
    }

    private void carregaTabela(ArrayList agen) {

        DefaultTableModel tm = new DefaultTableModel(
                new Object[][]{},
                new String[]{"Nome", "Endereço", "Cpf", "Data Nasc.", "Usuário", "Agência"}) {

            @Override
            public boolean isCellEditable(int row, int col) {
                return false;
            }
        };

        tm.setNumRows(0);
        for (int i = 0; i < agen.size(); i++) {
            String linha = (list.get(i).getNome() + "," + list.get(i).getEndereco() + "," + list.get(i).getCpf() + ","
                    + list.get(i).getDataNascimento() + "," + list.get(i).getUsuario() + "," + list.get(i).getAgencia());
            String valores[] = linha.split(",");
            tm.addRow(valores);
        }

        view.getTabelaDirRegional().setModel(tm);

    }
}
